package com.gqs.bookstore.vo;

import java.util.List;
/**
 * /**
 * 分页查找mysql语句：  select 字段    from 表	where 条件  limit (页码-1)*页大小,页大小
 * MySQL数据库实现分页比较简单，提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。
	LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量，它有一个或两个参数，如果给出两个参数，
	 第一个参数指定返回的所在页的第一行在当前页所有数据中的位置，从0开始（注意不是1），第二个参数指定返回行数。
	 例如：例如：
			select * from table WHERE … LIMIT 10; #返回前10行【默认第一页】
			select * from table WHERE … LIMIT [(1-1)*10=0],10; #返回前10行【第一页，经过计算后第一个参数索引从0开始】
			select * from table WHERE … LIMIT 【(2-1)*10=10】,10; #返回第10-20行数据【第二页】
 * 
 * limit函数底层是这样执行的：pk是id的名称，一般是主键
 * 		select top pageSize * from tableName
			where pk not in (
							select (nowPage-1)*pageSize pk from tableName
								)
	
 * @author 葛葛123
 *
 * @param <P>
 */
//这个类的作用即是对每一页数据的封装
public class PageBean<P> {//每页包括	数据的列表，总条数，当前页【页码】，页大小。
	private List<P> data;//保存每页的数据的列表
	private Long total;//查询某个分类下的书籍的总条数
	private Long pageIndex;//当前页，这个是从1开始的
	private Long pageSize;//页大小
	public List<P> getData() {
		return data;
	}
	public void setData(List<P> data) {
		this.data = data;
	}
	public Long getTotal() {
		return total;
	}
	public void setTotal(Long total) {
		this.total = total;
	}
	public Long getPageIndex() {
		return pageIndex;
	}
	public void setPageIndex(Long pageIndex) {
		this.pageIndex = pageIndex;
	}
	public Long getPageSize() {
		return pageSize;
	}
	public void setPageSize(Long pageSize) {
		this.pageSize = pageSize;
	}
	//计算得到某个分类下所有条数可以划分成多少页码
	public Long getTotalPage(){//求余和除法运算
		return total%pageSize==0 ? total/pageSize : total/pageSize+1;
	}
	
}
